#pragma once
#include "wp2_5.h"
#include <string>
#include <vector>
#include <map>
using namespace std;

class COrderInfo
{
public:
	COrderInfo();
	~COrderInfo();

	CString Account;
	CString  Symbol;
	IPositionType PositionType;
	long Qty;
	IPriceType PriceType;
	IOrderStateType OrderState;
	IOrderReqStateType OrderReqState;
	IOrderType OrderType;
	double Price;
	long SrvAcpNo;
	double KseAcptTime;
	long FillQty;
	long UnFillQty;
	double LastFillPrice;

	COrderInfo* pNextOrder;
};

typedef vector<COrderInfo*> OrderVector;
typedef vector<COrderInfo*>::iterator OrderVectorPos;
typedef map<long, COrderInfo*> mapOrder;
typedef pair<long, COrderInfo*> pairOrder;
typedef map< long, COrderInfo* >::iterator OrderPos;

typedef map<wstring, mapOrder*> mapAccountOrder;
typedef pair<wstring, mapOrder*> pairAccountOrder;
typedef map< wstring, mapOrder* >::iterator AccountOrderPos;

typedef map<double, OrderVector*> mapOrderByPrice;
typedef pair<double, OrderVector*> pairOrderByPrice;
typedef map<double, OrderVector* >::iterator OrderByPricePos;
